package holdtime.xlxc.tools.util;

/**
 * Created by 徐杨 on 16/8/29.
 * 邮箱：544066591@qq.com
 */
public class ByteTool {
    public static byte[] setByteArray(byte[] fountainData, byte t) {
        for (int i = 0; i < fountainData.length; i++) {
            fountainData[i] = t;
        }
        return fountainData;
    }

    /**********************************************************************
     * //说明:向LOOP BUFFER中存放数据
     * //参数1: 目标循环链表BUFF
     * //参数2: 源BUFF
     * //参数3: 存数据大小
     * //参数4: 环表起始位置
     * //参数5: 环表BUFF大小
     * //返回:环表的下一个位置
     **********************************************************************/
    public static int LoopBufferCopyS(byte[] pBuffer, byte[] pr, int DSize, int DStart, int BufferSize) {
        int i;
        for (i = 0; i < DSize; i++) {
            DStart %= BufferSize;
            pBuffer[DStart] = pr[i];
            DStart++;
        }
        return (DStart % BufferSize);
    }

    /**********************************************************************
     * //说明:从LOOP BUFFER中提取数据
     * //参数1: 目标BUFF
     * //参数2: 源循环链表BUFF
     * //参数3: 取数据大小
     * //参数4: 环表起始位置
     * //参数5: 环表BUFF大小
     * //参数6: 0 大端模式1小端模式
     * //返回:环表的下一个位置
     **********************************************************************/
    public static int LoopBufferCopyR(byte[] pc, byte[] pBuffer, int DSize, int DStart, int BufferSize, int DType) {
        int i;
        for (i = 0; i < DSize; i++) {
            DStart %= BufferSize;
            if (DType == 1)//小端模式
            {
                pc[DSize - i - 1] = pBuffer[DStart];
            } else //大端模式
            {
                pc[i] = pBuffer[DStart];
            }
            DStart++;
        }
        return (DStart % BufferSize);
    }
}
